package q1.project.modules.system.role.entity;

import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import q1.project.common.enums.EnableStatusEnum;
import q1.project.core.entity.BaseEntity;
import q1.project.core.jpa.annotation.Comment;

/**
 * 角色实体
 *
 * @author Q1 Team
 * @version 1.0
 */
@Getter
@Setter
@Entity
@Table(
    name = "q1_role",
    indexes = {@Index(name = "idx_role_code", columnList = "role_code")})
public class RoleEntity extends BaseEntity {

  /** 角色编码 */
  @Comment("角色编码")
  @Column(nullable = false, length = 50)
  private String roleCode;

  /** 角色名称 */
  @Comment("角色名称")
  @Column(nullable = false, length = 50)
  private String roleName;

  /** 角色描述 */
  @Comment("角色描述")
  @Column(length = 200)
  private String description;

  /** 状态：ACTIVE-激活 DISABLED-禁用 */
  @Comment("状态")
  @Enumerated(EnumType.STRING)
  @Column(nullable = false, length = 20)
  private EnableStatusEnum status = EnableStatusEnum.ACTIVE;

  // 注意：角色权限关联使用QueryDSL进行连表查询，不使用JPA注解
}
